package com.haha.onebot.enums;


import lombok.Getter;

/**
 * 事件子类型，分别表示 OneBot 启用、停用、WebSocket 连接成功
 * 消息子类型，如果是好友则是 friend，如果是群临时会话则是 group
 */
@Getter
public enum SubTypeEnum {

    /**
     * 事件子类型，分别表示 OneBot 启用、停用、WebSocket 连接成功
     */
    ENABLE(PostTypeEnum.META_EVENT, "enable"),

    /**
     * 事件子类型，分别表示 OneBot 启用、停用、WebSocket 连接成功
     */
    DISABLE(PostTypeEnum.META_EVENT, "disable"),

    /**
     * 事件子类型，分别表示 OneBot 启用、停用、WebSocket 连接成功
     */
    CONNECT(PostTypeEnum.META_EVENT, "connect"),

    /**
     * 消息子类型，如果是好友则是 friend，如果是群临时会话则是 group
     */
    FRIEND(PostTypeEnum.MESSAGE, MessageTypeEnum.PRIVATE, "friend"),

    /**
     * 消息子类型，如果是好友则是 friend，如果是群临时会话则是 group
     */
    GROUP(PostTypeEnum.MESSAGE, MessageTypeEnum.PRIVATE, "group"),
    OTHER(PostTypeEnum.MESSAGE, MessageTypeEnum.PRIVATE, "other"),

    /**
     * 消息子类型，正常消息是 normal，匿名消息是 anonymous，系统提示（如「管理员已禁止群内匿名聊天」）是 notice
     */
    NORMAL(PostTypeEnum.MESSAGE, MessageTypeEnum.GROUP, "normal"),

    /**
     * 消息子类型，正常消息是 normal，匿名消息是 anonymous，系统提示（如「管理员已禁止群内匿名聊天」）是 notice
     */
    ANONYMOUS(PostTypeEnum.MESSAGE, MessageTypeEnum.GROUP, "anonymous"),

    /**
     * 消息子类型，正常消息是 normal，匿名消息是 anonymous，系统提示（如「管理员已禁止群内匿名聊天」）是 notice
     */
    NOTICE(PostTypeEnum.MESSAGE, MessageTypeEnum.GROUP, "notice"),


    ;

    SubTypeEnum(PostTypeEnum postType, String subType) {
        this.postType = postType;
        this.subType = subType;
    }

    SubTypeEnum(PostTypeEnum postType, MessageTypeEnum messageType, String subType) {
        this.postType = postType;
        this.messageType = messageType;
        this.subType = subType;
    }

    private PostTypeEnum postType;

    private MessageTypeEnum messageType;

    private String subType;
}
